.Dd $Mdocdate$
.Dt WABT 1
.Os
.Sh NAME
.Nm wasm2c
.Nd convert a WebAssembly binary file to a C source and header
.Sh SYNOPSIS
.Nm wasm2c
.Op options
.Ar file
.Sh DESCRIPTION
.Nm
takes a WebAssembly module and produces an equivalent C source and header.
.Pp
The options are as follows:
.Bl -tag -width Ds
.It Fl Fl help
Print a help message
.It Fl Fl version
Print version information
.It Fl v , Fl Fl verbose
Use multiple times for more info
.It Fl o , Fl Fl output=FILENAME
Output file for the generated C source file, by default use stdout
.It Fl n , Fl Fl module-name=MODNAME
Unique name for the module being generated. This name is prefixed to each of the generaed C symbols. By default, the module name from the names section is used. If that is not present the name of the input file is used as the default.
.It Fl Fl enable-exceptions
Enable Experimental exception handling
.It Fl Fl disable-mutable-globals
Disable Import/export mutable globals
.It Fl Fl disable-saturating-float-to-int
Disable Saturating float-to-int operators
.It Fl Fl disable-sign-extension
Disable Sign-extension operators
.It Fl Fl disable-simd
Disable SIMD support
.It Fl Fl enable-threads
Enable Threading support
.It Fl Fl enable-function-references
Enable Typed function references
.It Fl Fl disable-multi-value
Disable Multi-value
.It Fl Fl enable-tail-call
Enable Tail-call support
.It Fl Fl disable-bulk-memory
Disable Bulk-memory operations
.It Fl Fl disable-reference-types
Disable Reference types (externref)
.It Fl Fl enable-annotations
Enable Custom annotation syntax
.It Fl Fl enable-code-metadata
Enable Code metadata
.It Fl Fl enable-gc
Enable Garbage collection
.It Fl Fl enable-memory64
Enable 64-bit memory
.It Fl Fl enable-multi-memory
Enable Multi-memory
.It Fl Fl enable-extended-const
Enable Extended constant expressions
.It Fl Fl enable-all
Enable all features
.It Fl Fl no-debug-names
Ignore debug names in the binary file
.El
.Sh EXAMPLES
Parse binary file test.wasm and write test.c and test.h
.Pp
.Dl $ wasm2c test.wasm -o test.c
.Pp
Parse test.wasm, write test.c and test.h, but ignore the debug names, if any
.Pp
.Dl $ wasm2c test.wasm --no-debug-names -o test.c
.Sh SEE ALSO
.Xr wasm-decompile 1 ,
.Xr wasm-interp 1 ,
.Xr wasm-objdump 1 ,
.Xr wasm-stats 1 ,
.Xr wasm-strip 1 ,
.Xr wasm-validate 1 ,
.Xr wasm2wat 1 ,
.Xr wast2json 1 ,
.Xr wat-desugar 1 ,
.Xr wat2wasm 1 ,
.Xr spectest-interp 1
.Sh BUGS
If you find a bug, please report it at
.br
.Lk https://github.com/WebAssembly/wabt/issues .
